name := "reactivemanifesto"

organization := "com.galudisu"

version := "0.1"

scalaVersion := "2.12.4"

libraryDependencies ++= {
  val akkaVersion = "2.5.6"
  val akkaHttpVersion = "10.0.10"
  val slf4jVersion = "1.7.25"
  val log4j2Version = "2.9.0"
  val scalatestFullVersion = "3.0.3"
  val scalaMockVersion = "3.6.0"
  val scaldiVersion = "0.5.8"

  Seq(
    // akka basic
    "com.typesafe.akka" %% "akka-actor" % akkaVersion % Provided,
    "com.typesafe.akka" %% "akka-http" % akkaHttpVersion % Provided,
    "com.typesafe.akka" %% "akka-http-spray-json" % akkaHttpVersion % Provided,
    "com.typesafe.akka" %% "akka-remote" % akkaVersion % Provided,
    "com.typesafe.akka" %% "akka-cluster" % akkaVersion % Provided,
    "com.typesafe.akka" %% "akka-cluster-tools" % akkaVersion % Provided,
    "com.typesafe.akka" %% "akka-cluster-sharding" % akkaVersion % Provided,

    // log
    "com.typesafe.akka" %% "akka-slf4j" % akkaVersion % Provided,
    "org.apache.logging.log4j" % "log4j-slf4j-impl" % log4j2Version % Provided,
    "org.apache.logging.log4j" % "log4j-api" % log4j2Version % Provided,
    "org.apache.logging.log4j" % "log4j-core" % log4j2Version % Provided,

    // DI
    "org.scaldi" %% "scaldi-akka" % scaldiVersion,

    // test
    "com.typesafe.akka" %% "akka-testkit" % akkaVersion % Test,
    "com.typesafe.akka" %% "akka-stream-testkit" % akkaVersion % Test,
    "com.typesafe.akka" %% "akka-http-testkit" % akkaHttpVersion % Test,
    "org.scalatest" %% "scalatest" % scalatestFullVersion % Test,
    "org.scalamock" %% "scalamock-scalatest-support" % scalaMockVersion % Test

  )
}

unmanagedSourceDirectories in Test ++= Seq(baseDirectory(_ / "src" / "integration_test" / "scala").value)
unmanagedResourceDirectories in Test ++= Seq(baseDirectory(_ / "src" / "integration_test" / "resources").value)

scalacOptions in ThisBuild ++= Seq("-unchecked", "-deprecation")

lazy val root = (project in file(".")).enablePlugins(JavaAppPackaging)

fork in run := true
